public class FuXieLing {

    //https://leetcode.cn/problems/duplicate-zeros/description/
    public void duplicateZeros(int[] arr) {
        int cur=0;
        int dest=-1;
        //寻找cur的最后一个位置
        while(dest<arr.length) {
            if(arr[cur]!=0) {
                dest++;
            }else {
                dest+=2;
            }
            if(dest>=arr.length-1) {
                break;
            }
            cur++;
        }
        //还要解决一下dest越界的问题
        if(dest==arr.length) {
            arr[--dest]=0;
            dest--;
            cur--;
        }
        //开始从后往前遍历
        while(dest>0) {
            if(arr[cur]!=0) {
                arr[dest]=arr[cur];
            }else {
                arr[dest]=0;
                arr[--dest]=0;
            }
            cur--;
            dest--;
        }
    }


}
